EXCEL VBA STUDENTS DATABASE [on hold]

Posted by BENTET on Programmers See other posts from Programmers or by BENTET
Published on 2014-08-18T09:30:35Z Indexed on 2014/08/18 16:44 UTC
Read the original article Hit count: 479

Filed under:

I AM DEVELOPING AN EXCEL DATABASE TO RECORD STUDENTS DETAILS. THE HEADINGS OF THE TABLE ARE DATE,YEAR, PAYMENT SLIP NO.,STUDENT NUMBER,NAME,FEES,AMOUNT PAID, BALANCE AND PREVIOUS BALANCE. I HAVE BEEN ABLE TO PUT UP SOME CODE WHICH IS WORKING, BUT THERE ARE SOME SETBACKS THAT I WANT TO BE ADDRESSED.I ACTUALLY DEVELOPED A USERFORM FOR EACH PROGRAMME OF THE INSTITUTION AND ASSIGNED EACH TO A SPECIFIC SHEET BUT WHENEVER I ADD A RECORD, IT DOES NOT GO TO THE ASSIGNED SHEET BUT GOES TO THE ACTIVE SHEET.ALSO I WANT TO HIDE ALL SHEETS AND BE WORKING ONLY ON THE USERFORMS WHEN THE WORKBOOK IS OPENED.ONE PROBLEM AM ALSO FACING IS THE UPDATE CODE.WHENEVER I UPDATE A RECORD ON A SPECIFIC ROW, IT RATHER EDIT THE RECORD ON THE FIRST ROW NOT THE RECORD EDITED.THIS IS THE CODE I HAVE BUILT SO FAR.I AM VIRTUALLY A NOVICE IN PROGRAMMING.

Private Sub cmdAdd_Click()

    Dim lastrow As Long
    lastrow = Sheets("Sheet4").Range("A" & Rows.Count).End(xlUp).Row

    Cells(lastrow + 1, "A").Value = txtDate.Text
    Cells(lastrow + 1, "B").Value = ComBox1.Text
    Cells(lastrow + 1, "C").Value = txtSlipNo.Text
    Cells(lastrow + 1, "D").Value = txtStudentNum.Text
    Cells(lastrow + 1, "E").Value = txtName.Text
    Cells(lastrow + 1, "F").Value = txtFees.Text
    Cells(lastrow + 1, "G").Value = txtAmountPaid.Text

    txtDate.Text = ""
    ComBox1.Text = ""
    txtSlipNo.Text = ""
    txtStudentNum.Text = ""
    txtName.Text = ""
    txtFees.Text = ""
    txtAmountPaid.Text = ""


End Sub

Private Sub cmdClear_Click()

    txtDate.Text = ""
    ComBox1.Text = ""
    txtSlipNo.Text = ""
    txtStudentNum.Text = ""
    txtName.Text = ""
    txtFees.Text = ""
    txtAmountPaid.Text = ""
    txtBalance.Text = ""


End Sub

Private Sub cmdClearD_Click()

    txtDate.Text = ""
    ComBox1.Text = ""
    txtSlipNo.Text = ""
    txtStudentNum.Text = ""
    txtName.Text = ""
    txtFees.Text = ""
    txtAmountPaid.Text = ""
    txtBalance.Text = ""

End Sub

Private Sub cmdClose_Click()

       Unload Me

End Sub

Private Sub cmdDelete_Click()

  'declare the variables
    Dim findvalue As Range
    Dim cDelete As VbMsgBoxResult

    'check for values
    If txtStudentNum.Value = "" Or txtName.Value = "" Or txtDate.Text = "" Or ComBox1.Text = "" Or txtSlipNo.Text = "" Or txtFees.Text = "" Or txtAmountPaid.Text = "" Or txtBalance.Text = "" Then
        MsgBox "There is not data to delete"
        Exit Sub
    End If

    'give the user a chance to change their mind
    cDelete = MsgBox("Are you sure that you want to delete this student", vbYesNo + vbDefaultButton2, "Are you sure????")
    If cDelete = vbYes Then

        'delete the row
        Set findvalue = Sheet4.Range("D:D").Find(What:=txtStudentNum, LookIn:=xlValues)
        findvalue.EntireRow.Delete
    End If

    'clear the controls
    txtDate.Text = ""
    ComBox1.Text = ""
    txtSlipNo.Text = ""
    txtStudentNum.Text = ""
    txtName.Text = ""
    'txtFees.Text = ""
    txtAmountPaid.Text = ""
    txtBalance.Text = ""


End Sub

Private Sub cmdSearch_Click()

    Dim lastrow As Long
    Dim currentrow As Long
    Dim studentnum As String


    lastrow = Sheets("Sheet4").Range("A" & Rows.Count).End(xlUp).Row
    studentnum = txtStudentNum.Text

    For currentrow = 2 To lastrow
    If Cells(currentrow, 4).Text = studentnum Then
    txtDate.Text = Cells(currentrow, 1)
    ComBox1.Text = Cells(currentrow, 2)
    txtSlipNo.Text = Cells(currentrow, 3)
    txtStudentNum.Text = Cells(currentrow, 4).Text
    txtName.Text = Cells(currentrow, 5)
    txtFees.Text = Cells(currentrow, 6)
    txtAmountPaid.Text = Cells(currentrow, 7)
    txtBalance.Text = Cells(currentrow, 8)

    End If
    Next currentrow
    txtStudentNum.SetFocus


End Sub

Private Sub cmdSearchName_Click()

    Dim lastrow As Long
    Dim currentrow As Long
    Dim studentname As String


    lastrow = Sheets("Sheet4").Range("A" & Rows.Count).End(xlUp).Row
    studentname = txtName.Text

    For currentrow = 2 To lastrow
    If Cells(currentrow, 5).Text = studentname Then
    txtDate.Text = Cells(currentrow, 1)
    ComBox1.Text = Cells(currentrow, 2)
    txtSlipNo.Text = Cells(currentrow, 3)
    txtStudentNum.Text = Cells(currentrow, 4)
    txtName.Text = Cells(currentrow, 5).Text
    txtFees.Text = Cells(currentrow, 6)
    txtAmountPaid.Text = Cells(currentrow, 7)
    txtBalance.Text = Cells(currentrow, 8)


End If
    Next currentrow
    txtName.SetFocus


End Sub

Private Sub cmdUpdate_Click()


    Dim tdate As String
    Dim tlevel As String
    Dim tslipno As String
    Dim tstudentnum As String
    Dim tname As String
    Dim tfees As String
    Dim tamountpaid As String
    Dim currentrow As Long
    Dim lastrow As Long


    'If Cells(currentrow, 5).Text = studentname Then
    'txtDate.Text = Cells(currentrow, 1)


    lastrow = Sheets("Sheet4").Range("A" & Columns.Count).End(xlUp).Offset(0, 1).Column

    For currentrow = 2 To lastrow

    tdate = txtDate.Text
    Cells(currentrow, 1).Value = tdate
    txtDate.Text = Cells(currentrow, 1)


    tlevel = ComBox1.Text
    Cells(currentrow, 2).Value = tlevel
    ComBox1.Text = Cells(currentrow, 2)


    tslipno = txtSlipNo.Text
    Cells(currentrow, 3).Value = tslipno
    txtSlipNo = Cells(currentrow, 3)


    tstudentnum = txtStudentNum.Text
    Cells(currentrow, 4).Value = tstudentnum
    txtStudentNum.Text = Cells(currentrow, 4)


    tname = txtName.Text
    Cells(currentrow, 5).Value = tname
    txtName.Text = Cells(currentrow, 5)


    tfees = txtFees.Text
    Cells(currentrow, 6).Value = tfees
    txtFees.Text = Cells(currentrow, 6)


    tamountpaid = txtAmountPaid.Text
    Cells(currentrow, 7).Value = tamountpaid
    txtAmountPaid.Text = Cells(currentrow, 7)


  Next currentrow

    txtDate.SetFocus
    ComBox1.SetFocus
    txtSlipNo.SetFocus
    txtStudentNum.SetFocus
    txtName.SetFocus
    txtFees.SetFocus
    txtAmountPaid.SetFocus
    txtBalance.SetFocus


End Sub

PLEASE I WAS THINKING IF I CAN DEVELOP SOMETHING THAT WILL USE ONLY ONE USERFORM TO SEND DATA TO DIFFERENT SHEETS IN THE WORKBOOK.

© Programmers or respective owner

Related posts about excel